FB a ISO8859-2

Otázka od: Lebeda David

5. 11. 2002 7:38

Ahoj,

jelikoz na muj predchozi dotaz nikdo nereagoval, zkusim neco
trosku jineho. Zalozil jsem tabulku se sloupcem v char set
ISO8859_2. Jenze order by podle takoveho sloupce je na nic, jelikoz
pismena s diakritikou jsou zarazena az nakonec. Nepodarilo se mi
ale zjistit, jake tento charset podporuje collation.

Nevite to nekdo?

Jak mam docilit toho, aby sloupec serazeny pomoci order by byl
serazen spravne cesky? Kombinace WIN1250 a PXW_CSY nedela
rozdil mezi n bez hacku a n s hackem a podobne. Existuje zpusob,
jak FB primet k tomu, aby porovnavala spravne, tj. podle Windows
Locale? Neexistuje neco od treti strany, co by problem resilo? VIm,
ze kdysi tu nekdo resil problem s CH a povedlo se.

Diky za kazde nakopnuti.

David Lebeda

Odpovedá: Pavel Cisar

5. 11. 2002 14:43

Haj hou!

On 5 Nov 2002 at 7:28, Lebeda David wrote:

> jelikoz na muj predchozi dotaz nikdo nereagoval, zkusim neco
> trosku jineho. Zalozil jsem tabulku se sloupcem v char set
> ISO8859_2. Jenze order by podle takoveho sloupce je na nic, jelikoz
> pismena s diakritikou jsou zarazena az nakonec. Nepodarilo se mi
> ale zjistit, jake tento charset podporuje collation.

Mozna te to prekvapi, ale zcela standardni CS_CZ  
 
> Jak mam docilit toho, aby sloupec serazeny pomoci order by byl
> serazen spravne cesky? Kombinace WIN1250 a PXW_CSY nedela
> rozdil mezi n bez hacku a n s hackem a podobne. Existuje zpusob,
> jak FB primet k tomu, aby porovnavala spravne, tj. podle Windows
> Locale?

Kde beres jistotu, ze spravne je prave to Windows locale ? Pokud jsi
ovsem schopen dolozit ze trideni dle PXW_CSY NENI podle *ceske normy*,
pak je to vskutku chyba a je treba ji opravit. Zdroje jsou k dipozici,
muzes zacit  

> Neexistuje neco od treti strany, co by problem resilo? VIm,
> ze kdysi tu nekdo resil problem s CH a povedlo se.

No, povedlo se proto, ze je to ve FB opravene.

S pozdravem
Pavel Cisar
Mobil: 724 281429
http://www.ibphoenix.cz
Vse co potrebujete pro Firebird a InterBase

Odpovedá: Lebeda David

5. 11. 2002 16:13

> > Jak mam docilit toho, aby sloupec serazeny pomoci order by byl
> > serazen spravne cesky? Kombinace WIN1250 a PXW_CSY nedela rozdil
> > mezi n bez hacku a n s hackem a podobne. Existuje zpusob, jak FB
> > primet k tomu, aby porovnavala spravne, tj. podle Windows Locale?
>
> Kde beres jistotu, ze spravne je prave to Windows locale ? Pokud jsi
> ovsem schopen dolozit ze trideni dle PXW_CSY NENI podle *ceske normy*,
> pak je to vskutku chyba a je treba ji opravit. Zdroje jsou k dipozici,
> muzes zacit  

Ahoj,

neznam podrobnosti z normy ceskeho trideni, takze je mozne, ze trideni PXW_CSY
nejake norme vyhovuje. Na druhou stranu je fakt, ze trideni podle PXW_CSY a
podle
ceskeho Windows locale se proste lisi. Mne je celkem jedno, jestli nakonec bude

trideni takove nebo makove, ale potrebuji ho stejne. O co jde:

Ve vybranem sloupci provadim hledani metodou puleni intervalu. Nezbytnou
podminkou je, ze mnozina je setridena (v danem pripade treba vzestupne). To mi
zajistuje order by. K porovnavani ovsem pouzivam AnsiCompareText a
"ten ma
obcas jiny nazor nez order by", takze nakonec se vyhleda nejaky
nesmysl. A to se
deje prave v takovych tech potizistickych pripadech, kdy jde o diakritiku apod.

Specialne bych pochopil, ze neni rozdil mezi dlouhym A a kratkym A. Ale rozdil
mezi
N bez hacku a N s hackem uz IMHO je, ale ne ve FB. Vi nekdo, co rika norma?

Anebo: jak si mohu napsat dostatecne efektivni funkci na porovnani dvou retezcu

tak, aby to nebylo v rozporu s PXW_CSY?

> > Neexistuje neco od treti strany, co by problem resilo? VIm,
> > ze kdysi tu nekdo resil problem s CH a povedlo se.
>
> No, povedlo se proto, ze je to ve FB opravene.

Pokud si vzpominam, tak tu pred casem Karel Brichnac cosi nabizel ke stazeni...

zkusim to najit v archivu...

Tak jsem to nasel:

http://web.redbox.cz/brichna/ib_trid_ch.html


Je to knihovna gdsintl.

Narazka na treti stranu se tykala toho, jestli nekdo napsane neco podobneho pro

reseni problemu, ktery jsem popsal.

Sam si na to, co by nececkar a clovek do veci poradne nevidici, netroufam.

David Lebeda

Odpovedá: Karel Rys

5. 11. 2002 16:35

Lebeda David dne 5 Nov 2002 v 15:07:

> neznam podrobnosti z normy ceskeho trideni, takze je mozne, ze trideni
> PXW_CSY nejake norme vyhovuje. Na druhou stranu je fakt, ze trideni
> podle PXW_CSY a podle ceskeho Windows locale se proste lisi. Mne je
> celkem jedno, jestli nakonec bude trideni takove nebo makove, ale
> potrebuji ho stejne. O co jde:

Ahoj,

v krajnim pripade by se treba dala pro to hledani metodou puleni intervalu
napsat nejaka stored
procedure, popr. stored proceduru vyuzit jen na to porovnavani misto Win-
funkci. Elegantnost nic
moc, spis nouzove reseni, pokud nebudes mit jine.

Karel Rys

Odpovedá: Lebeda David

6. 11. 2002 7:08

> v krajnim pripade by se treba dala pro to hledani metodou puleni
> intervalu napsat nejaka stored procedure, popr. stored proceduru
> vyuzit jen na to porovnavani misto Win-funkci. Elegantnost nic moc,
> spis nouzove reseni, pokud nebudes mit jine.

Ahoj,

tomuhle se budu snazit vyhnout, protoze rezie na volani ulozene
procedury je podstatne vetsi, zvlast pri vytizene siti, nez porovnani
retezcu. To uz by se mi spise vyplatilo vysledovat pravidla pro praci
s diakritikou u FB, na zaklade toho sestavit nejakou tabulku a
porovnavat timto zpusobem. I kdyz nevim... zatim doufam, ze
existuje lepsi reseni, protoze potrebuji celkem sviznou reakci.

Ale presto: nevite nekdo o odkazu na stranky s ruznymi algoritmy na
porovnani retezcu? Sam jsem po tom jeste nepatral, teprve to
zkusim, ale pokud jste nekdo treba nedavno o neco zavadil, prosim
o info.

Dik

David Lebeda